There are an increasing number of networks over which various digital devices communicate with each other. If all such devices operated with the same hardware and software, this inter-device communication would be relatively easy. However, that is not generally the case, and it is often necessary to convert, or transcode, signals passing between communicating devices so that the respective devices can receive and properly interpret the signals.
Transcoding is the direct digital-to-digital conversion of data from one encoding to another. Typically, it is used for the conversion of rich media (such as audio and video) from a format incompatible with a specific application into a format that can be directly utilized by that application. It may also be used to transform HTML and graphics to more closely match the constraints of mobile devices. The type of transcoding that is referenced in the system of the present invention is that which utilizes a proxy server or device, which sits between a requesting client application and an internet location providing the data. A proxy server transcodes the data from its original format into a format which is optimized for delivery to, and use by, a target client.
The transcoding process is static, in that the source and target formats are predetermined, and the transcoding is performed without any additional inputs. NetFlix and YouTube are examples of systems that use static transcoding, setting up transcoding parameters before a session. Those parameters cannot be changed during a session.
Prior art systems exist to implement a client-defined filter between the client and the content, e.g., parental control filters and the like. One such example is the Google “Safe Search” system, which permits the user to request that certain content not be transmitted. This is a static system requiring the user to predefine the parameters of the filter prior to content retrieval.
Other prior art systems include filters that change certain client-defined words prior to delivery, e.g., changing an offensive word into a predefined substitute word. This type of filter also relies upon static, predefined rules.
Transcoding utilizing only predefined rules does not allow for dynamic optimization of the delivery of the transcoded content, nor does it allow for dynamic modification of the content. Thus, fluctuating changes in network bandwidth at the client are not part of the process of transcoding as represented by the prior art.
The limitation imposed by static transcoding is problematic. There are many situations where changes in a parameter will affect inefficient inter-device communication over a network. For example, if the bandwidth of one of the communicating devices were to change mid-session, then static transcoding-based inefficiencies would occur. For example if the sender were to suffer a reduction in bandwidth during a session, yet the channel bandwidth were to remain constant, then the efficiency over the channel would be reduced. On the other hand if the receiver were to suffer a reduction in bandwidth during a session, then while the data rate over the channel might remain the same for the sender, the receiver would not be able to receive all of the transmitted data. Numerous other examples exist.
In view of the problems posed by static transcoding, there is a need for communications to be adaptive to changing parameters during a communication session.